import java.io.IOException;
import java.net.ServerSocket;
import java.util.StringTokenizer;

public class Servidor{
	
	private static String mensajeAEnviar;
	private static String mensajeRecibido;
	
	//METODO QUE DEVUELVE INFORMACION EN BASE AL MENSAJE RECIBIDO
	public static void OperarInformacion(){
		StringTokenizer st = new StringTokenizer(mensajeRecibido);
	    if(st.equals("USER")){
	    	String user = st.nextToken();	
	    	if(user==null){
	    		mensajeAEnviar = "411 ERR";
	    	}else{
	    		mensajeAEnviar = USER(user);
	    	}
	    }else if(st.equals("PASS")){
	    	String pass = st.nextToken();	
	    	if(pass==null){
	    		mensajeAEnviar = "413 ERR";
	    	}else{
	    		mensajeAEnviar = PASS(pass);
	    	}
	    }else if(st.equals("LISTSENSOR")){
	//(!)    		
	    		
	    }else if(st.equals("SALIR")){
	    	mensajeAEnviar = "218 OK";
	    }
	}		
		
	//METODO USER
	public static String USER (String nombre){
		boolean encontrado = false;
		for(int i=0; i<100; i++){
			if(RegistroDatos.ListaUsuarios[i].getNombre().equals(nombre)==true){
				encontrado=true;
			}
		}
		if(encontrado==true){
			return "211 OK";
		}else{
			return "410 ERR";
		}
	}
		
	//METODO PASS
	public static String PASS (String pass){
		boolean encontrado = false;
		for(int i=0; i<100; i++){
			if(RegistroDatos.ListaUsuarios[i].getPassword().equals(pass)==true){
				encontrado=true;
			}
		}
		if(encontrado==true){
			return "212 OK";
		}else{
			return "412 ERR";
		}
	}
	
	public static void main (String [] args){
		try{	
			ServerSocket welcomeSocket = new ServerSocket(6969);
			SocketManager sm = new SocketManager(welcomeSocket.accept());
			System.out.println("SERVIDOR ARRANCADO");
		    mensajeRecibido.equals("");
			while(!(mensajeRecibido.equals("SALIR"))){
				mensajeRecibido = sm.Leer();
				OperarInformacion();
				sm.Escribir(mensajeAEnviar+'\n');
			}			
		}catch(IOException ex){
			System.err.println("ERROR DE CONEXION");
        }
	}	
}
